1. Field
The present disclosure relates to a method and apparatus for updating an associative memory.
2. Background
Associative memory technology is based on the concept of human intelligence, which also may be referred to as natural intelligence. Typically, when recalling items, events, and/or concepts from memory, human intelligence takes into account how these items, events, or concepts are related. Collectively, items, events, and/or concepts may be known as “entities”. In other words, human intelligence takes into account associations between a previously experienced entity and other entities when recalling the previously experienced entity.
In this manner, human intelligence uses a memory that is based on associations in order to recall entities that have been previously experienced. This concept is the foundation for the different associative memory technologies currently being used and explored. Various types of associative memory technologies are currently present. These types include, for example, autoassociative memories and heteroassociative memories, though the advantageous embodiments described below are not limited to these types of associative memories.
Autoassociative memories are capable of retrieving a piece of data using only a portion of the piece of data. Heteroassociative memories are capable of retrieving a piece of data from one category using an associated piece of data from another category.
Typically, an associative memory system may be implemented using a neural network, artificial intelligence, and/or other suitable technologies capable of forming associations between pieces of data and then retrieving different pieces of data based on these associations. The different pieces of data in the associative memory system may come from various sources of data.
For example, an associative memory may be built using data from any number of databases, tables, spreadsheets, logs, images, files, data structures, and/or other sources of data. In particular, the associative memory is configured to ingest the data stored in these various sources of data. As used herein, the term “ingest” contemplates an associative memory incorporating new data into existing data present in the associative memory and then forming associations within the newly ingested data and/or between the newly ingested data and previously ingested data. The term “ingest” also contemplates reincorporating previously ingested data in order to form new relationships among the previously ingested data.
Oftentimes, changes are made to the data stored in these various sources of data. These changes may include, for example, adding data, removing data, modifying data, and/or other types of changes. Thereafter, it may be desirable to cause the associative memory to ingest the new versions of the sources of data in order to update the associative memory.
However, with currently available systems for updating associative memory, it may not be possible to ingest updates to existing data within an associative memory by treating the updates as “new data”. Thus, in some cases, an associative memory may be updated only by recreating the entire associative memory using the new versions of the sources of data. However, as the size of the associative memory increases, the amount of time and/or effort needed to recreate the associative memory also increases. In some cases, if the associative memory is large enough, the rate of including desired updates into the associative memory may exceed the time required to recreate the associative memory.
Therefore, it would be advantageous to have a method and apparatus that takes into account at least some of the issues discussed above, as well as possibly other issues.